// Porosidad_Nuevo.js
Application.Views.Porosidad_Nuevo = Application.Vista.extend({
    nombre: 'Porosidad_Nuevo',
    initialize: function () {
        this.setElement($('#main-content'));
    },
    events: {
        'keyup .forma': 'calcularPorosidad',
        'submit form': 'agregarPorosidad',
        'click #limpiar-errores': 'limpiarErrores'
    },
    limpiarErrores: function (e) {
        this.$el.find('#lista-errores')
            .removeClass('hidden')
            .addClass('hidden');
    },
    calcularPorosidad: function (e) {
        var 
            A, 
            B, 
            C,
            GEA = 0,
            GEV = 0,
            W,
            W_,
            X,
            porosidad = 0;

        // Calcular GEA
        A = parseFloat(this.$el.find('#A').val());
        B = parseFloat(this.$el.find('#B').val());
        C = parseFloat(this.$el.find('#C').val());
        GEA = A / (B + (C - A));
        this.$el.find('#GEA').val(GEA.toFixed(4));

        // Calcular GEV
        W = parseFloat(this.$el.find('#W').val());
        W_ = parseFloat(this.$el.find('#W_').val());
        X = parseFloat(this.$el.find('#X').val());
        GEV = W / (W - (W_ - X));

        this.$el.find('#GEV').val(GEV.toFixed(4));

        // Calcular Porosidad
        porosidad = 1 - (GEA / GEV);
        this.$el.find('#porosidad').val(porosidad.toFixed(4));
    },
    
    agregarPorosidad: function (e) {
        // Cancelar accion por default
        e.preventDefault();

        // Guardar informacion
        var model = new Application.Models.Porosidad(),
            self = this;

        model.save({
            Fecha: this.$el.find('#fecha').val(),
            Turno: this.$el.find('#turno').val(),
            Identificacion: this.$el.find('#identificacion').val(),
            A: this.$el.find('#A').val(),
            B: this.$el.find('#B').val(),
            C: this.$el.find('#C').val(),
            W: this.$el.find('#W').val(),
            W_: this.$el.find('#W_').val(),
            X: this.$el.find('#X').val(),
            GEA: this.$el.find('#GEA').val(),
            GEV: this.$el.find('#GEV').val(),
            Porosidad: this.$el.find('#porosidad').val()
        }, {
            success: function () {
                alert('¡Porosidad guardada satisfactoriamente!');
                return Application.navegar('/porosidad');
            }, error: function () {
                alert('¡Error al guardar la porosidad!');
            }
        });
    },
    render: function () {
        var data = { DATA: {} },
            info = { MODO: Application.Constantes.MODO_AGREGAR },
            plantilla = _.template(
                Application.Contenido.find('#formulario-porosidad').html(),
                _.extend(data, info)
            );

        this.$el.html(plantilla);

        return this;
    }
});
